package com.cloudfun.campusshare.common.model.dto;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.Data;

/**
 * @author : zhangyongjie
 * @version : 1.0
 * @createTime : 2020/4/21 20:42
 * @description : 免密支付请求
 */
@Data
public class WeChatWithoutCodePayDTO{
    /**
     * 微信分配的小程序ID
     */
    @JacksonXmlProperty(localName = "appid")
    private String appId;

    /**
     * 微信支付分配的商户号
     */
    @JacksonXmlProperty(localName = "mch_id")
    private String mchId;

    /**
     * 随机字符串，长度要求在32位以内
     */
    @JacksonXmlProperty(localName = "nonce_str")
    private String nonceStr;

    /**
     * 通过签名算法计算得出的签名值
     */
    @JacksonXmlProperty(localName = "sign")
    private String sign;

    /**
     * 商品简单描述，该字段请按照规范传递，具体请见参数规定
     */
    @JacksonXmlProperty(localName = "body")
    private String body;

    /**
     * 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一
     */
    @JacksonXmlProperty(localName = "out_trade_no")
    private String outTradeNo;

    /**
     * 订单总金额，单位为分
     */
    @JacksonXmlProperty(localName = "total_fee")
    private String totalFee;

    /**
     * 支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP
     */
    @JacksonXmlProperty(localName = "spbill_create_ip")
    private String spbillCreateIp;

    /**
     * 异步接收微信支付结果通知的回调地址，通知url必须为外网可访问的url，不能携带参数。
     */
    @JacksonXmlProperty(localName = "notify_url")
    private String notifyUrl;

    /**
     * 交易类型PAP-微信委托代扣支付
     */
    @JacksonXmlProperty(localName = "trade_type")
    private String tradeType = "PAP";

    /**
     * 签约成功后，微信返回的委托代扣协议id
     */
    @JacksonXmlProperty(localName = "contract_id")
    private String contractId;
}
